// 此文件是对axios进行的一个二次封装

// 1. 引入依赖项
import axios from 'axios'
import 'nprogress/nprogress.css' // 引入对应的样式
import NProgress from 'nprogress'

// 2. 创建实例对象
const instance = axios.create({
  // 所有异步请求的目标服务器地址
  baseURL: '/member',
  timeout: 1000,
})

// 3. 设置请求拦截器
instance.interceptors.request.use((config) => {
  NProgress.start()

  return config
})

// 4. 设置响应拦截器
instance.interceptors.response.use(
  (response) => {
    // console.log(response)

    NProgress.done()
    return response.data
  },
  (error) => {
    // console.log(error)

    NProgress.done()
    return Promise.reject(new Error(error.message))
  }
)

// 5. 导出对象
export default instance
